import UIKit

@available(iOS 2.0, *)
extension QKC where AA :UIScreen {
		// Bounds of entire screen in points
    open func bounds_qk_g() -> QKC<AA,YY,ZZ, CGRect >{
		 self +^ self.value.bounds
	}

    @available(iOS 4.0, *)
    open func scale_qk_g() -> QKC<AA,YY,ZZ, CGFloat >{
		 self +^ self.value.scale
	}

		// The list of modes that this screen supports
    @available(iOS 3.2, *)
    open func availableModes_qk_g() -> QKC<AA,YY,ZZ, [UIScreenMode] >{
		 self +^ self.value.availableModes
	}

		// Preferred mode of this screen. Choosing this mode will likely produce the best results
    @available(iOS 4.3, *)
    open func preferredMode_qk_g() -> QKC<AA,YY,ZZ, UIScreenMode? >{
		 self +^ self.value.preferredMode
	}

	// Current mode of this screen
		// Current mode of this screen
    @available(iOS 3.2, *)
    open func currentMode_qk_s(_ currentMode:  UIScreenMode? ) -> QKC<AA,YY,ZZ, UIScreenMode? >{
		return link(next: currentMode).then_QK { $0.value.currentMode = currentMode }
	}
    @available(iOS 3.2, *)
    open func currentMode_qk_g() -> QKC<AA,YY,ZZ, UIScreenMode? >{
		 self +^ self.value.currentMode
	}

		// Default is UIScreenOverscanCompensationScale. Determines how the screen behaves if the connected display is overscanning
    @available(iOS 5.0, *)
    open func overscanCompensation_qk_s(_ overscanCompensation:  UIScreen.OverscanCompensation ) -> QKC<AA,YY,ZZ, UIScreen.OverscanCompensation >{
		return link(next: overscanCompensation).then_QK { $0.value.overscanCompensation = overscanCompensation }
	}
    @available(iOS 5.0, *)
    open func overscanCompensation_qk_g() -> QKC<AA,YY,ZZ, UIScreen.OverscanCompensation >{
		 self +^ self.value.overscanCompensation
	}

		// The amount that should be inset to avoid clipping
    @available(iOS 9.0, *)
    open func overscanCompensationInsets_qk_g() -> QKC<AA,YY,ZZ, UIEdgeInsets >{
		 self +^ self.value.overscanCompensationInsets
	}

		// The screen being mirrored by the receiver. nil if mirroring is disabled or unsupported. Moving a UIWindow to this screen will disable mirroring
    @available(iOS 4.3, *)
    open func mirrored_qk_g() -> QKC<AA,YY,ZZ, UIScreen? >{
		 self +^ self.value.mirrored
	}

		// True if this screen is being captured (e.g. recorded, AirPlayed, mirrored, etc.)
    @available(iOS 11.0, *)
    open func isCaptured_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.isCaptured
	}

		// 0 .. 1.0, where 1.0 is maximum brightness. Only supported by main screen.
    @available(iOS 5.0, *)
    open func brightness_qk_s(_ brightness:  CGFloat ) -> QKC<AA,YY,ZZ, CGFloat >{
		return link(next: brightness).then_QK { $0.value.brightness = brightness }
	}
    @available(iOS 5.0, *)
    open func brightness_qk_g() -> QKC<AA,YY,ZZ, CGFloat >{
		 self +^ self.value.brightness
	}

		// Default is NO. If YES, brightness levels lower than that of which the hardware is capable are emulated in software, if neccessary. Having enabled may entail performance cost.
    @available(iOS 5.0, *)
    open func wantsSoftwareDimming_qk_s(_ wantsSoftwareDimming:  Bool ) -> QKC<AA,YY,ZZ, Bool >{
		return link(next: wantsSoftwareDimming).then_QK { $0.value.wantsSoftwareDimming = wantsSoftwareDimming }
	}
    @available(iOS 5.0, *)
    open func wantsSoftwareDimming_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.wantsSoftwareDimming
	}

    @available(iOS 8.0, *)
    open func coordinateSpace_qk_g() -> QKC<AA,YY,ZZ, UICoordinateSpace >{
		 self +^ self.value.coordinateSpace
	}

    @available(iOS 8.0, *)
    open func fixedCoordinateSpace_qk_g() -> QKC<AA,YY,ZZ, UICoordinateSpace >{
		 self +^ self.value.fixedCoordinateSpace
	}

		// Native bounds of the physical screen in pixels
    @available(iOS 8.0, *)
    open func nativeBounds_qk_g() -> QKC<AA,YY,ZZ, CGRect >{
		 self +^ self.value.nativeBounds
	}

		// Native scale factor of the physical screen
    @available(iOS 8.0, *)
    open func nativeScale_qk_g() -> QKC<AA,YY,ZZ, CGFloat >{
		 self +^ self.value.nativeScale
	}

		// The maximumFramesPerSecond this screen is capable of
    @available(iOS 10.3, *)
    open func maximumFramesPerSecond_qk_g() -> QKC<AA,YY,ZZ, Int >{
		 self +^ self.value.maximumFramesPerSecond
	}

	// Will be `0` if display latency has not been calibrated by the user.
    @available(iOS 13.0, *)
    open func calibratedLatency_qk_g() -> QKC<AA,YY,ZZ, CFTimeInterval >{
		 self +^ self.value.calibratedLatency
	}

		// Returns the focused item for this screen's focus system. Use UIFocusSystem's focusedItem property instead – this property will be deprecated in a future release.
    @available(iOS 10.0, *)
     open func focusedItem_qk_g() -> QKC<AA,YY,ZZ, UIFocusItem? >{
		 self +^ self.value.focusedItem
	}

		// If focusedItem is not a view, this returns that item's containing view. Otherwise they are equal. Use UIFocusSystem's focusedItem property instead – this property will be deprecated in a future release.
    @available(iOS 9.0, *)
     open func focusedView_qk_g() -> QKC<AA,YY,ZZ, UIView? >{
		 self +^ self.value.focusedView
	}

    @available(iOS 9.0, *)
    open func supportsFocus_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.supportsFocus
	}

    @available(iOS, introduced: 2.0, deprecated: 9.0)
    open func applicationFrame_qk_g() -> QKC<AA,YY,ZZ, CGRect >{
		 self +^ self.value.applicationFrame
	}

    @available(iOS 4.0, *)
    open func displayLink_qk_f(withTarget target: Any, selector sel: Selector) -> QKC<AA,YY,ZZ,CADisplayLink?>{
		 self +^ self.value.displayLink(withTarget:target, selector:sel)
	}

}

extension QKC where AA :UIScreen {
	// Please see snapshotViewAfterScreenUpdates: in UIView.h for some important details on the behavior of this method when called from layoutSubviews.
    @available(iOS 7.0, *)
    open func snapshotView_qk_f(afterScreenUpdates afterUpdates: Bool) -> QKC<AA,YY,ZZ,UIView>{
		 self +^ self.value.snapshotView(afterScreenUpdates:afterUpdates)
	}

}

